Many electronic devices (e.g., personal computers, laptop computers, personal digital assistants (PDAs), cellular telephone, etc.) implement a sleep state to reduce energy consumption. This is especially important for portable devices in order to extend the battery life of the device. In a typical sleep state power supply to components such as the processor, memory controller, memory, and other components is reduced.
In order to maintain data integrity in the memory, a data refresh operation is periodically performed. Typically, during normal operation of the device, data refresh is managed by the memory controller. However, when the device goes into stand-by mode, also known as a “sleep state,” data refresh may, in some devices, be managed by the memory component itself called self refresh.
Prior to entering sleep state, the register values for some memory controllers may need to be modified to allow the memory component to perform self refresh. In an exemplary sequence of events, the settings of memory controller for system normal running environment are stored, registers of the memory controller are re-programmed so that the memory controller can drive the memory to self refresh mode under the sleep state, and the stand-by command is generated to the stand-by control register. However, the register values for re-programming the memory controller, as well as the stand-by command to actually implement the sleep state are typically stored in the memory. Thus, once the register settings for the memory controller have been re-programmed, in certain computer system designs the data in memory is no longer accessible or may not be reliably accessed. As a result, re-programming the memory controller and generating the stand-by command cannot be accomplished because the data controlling these operations cannot be accessed from memory.